![]() |
STM32 电机控制 SDK MCFW-6.4.1
用于构建驱动 STM32 的 PMSM 电机应用的软件开发套件
|
上一集:运动控制协议套件↤|目录 |↦ 下一页:固件错误
将电机运行为开环(OL)模式通常用于调试。将从指令到电机的每一步拆解,以确定意外行为发生在哪个阶段非常有用。OL模式有两种:电流模式和电压模式。
在通过开环电压模式调试时,如图1所示,用户通过电压参考Vq和速度参考直接给出参考。θth 的位置是通过理论上的加速和速度计算的。Vd会自动设为零,因为在开环模式下通常无用(不需要扭矩)。Vq 由用户以最大输出电压幅度的百分比给出。详情请参见圆圈限制。必须记住,由于闭环不再计算电流,且电机两端的高电压感应出强电流,系统可能会进入过电流状态。用户应在低Vq百分比下使用开环电压模式以避免此状况。
最后,尽管未用于PID计算,但iα和iβ仍可供MotorPilot显示。
开环电流模式用于测试系统保持用户给定固定电流参考的能力。速度参考和智商均由用户设定。θth 的位置是通过理论上的加速和速度计算的。然后通过Iq和IdGenerate一个恒定的旋转场,其速度由速度参考确定。
MCSDK和MotorPilot提供两种开环模式:电压和电流。这两种模式可以通过 WorkBench 同时启用,方法是在创建项目时勾选“阶段配置”标签中的“开放循环”框。查看Generate的IOC文件,这又回到了将M1_DBG_OPEN_LOOP_ENABLE设为true。电压模式和电流模式的选择由用户通过固件或MotorPilot决定。
第一步:在Motor Pilot界面左侧的滚动菜单中选择开放环模式。
步骤2(仅开环电压模式):设置电压参考。低速时低速启动,电机转速增加时需要增加。如果未更改,则使用drive_parameters.h中的默认值OPEN_LOOP_VOLTAGE_d。价值以百分比计,如前所述。
步骤2 bis(仅开环电流模式):设定Flux的参考。低速时低速启动,电机转速增加时需要增加。如果不变,则使用parameters_conversion.h中的默认值DEFAULT_FLUX_COMPONENT。安培数值;等同于同我。
第三步:设置速度坡。/!\ 注意加速必须保持较低,否则发动机会熄火。(通常低于3.0的速度/持续时间比即可达成,尽管速度必须与电压/通量参考保持一致。)点击执行速度坡度以存储设置。
第四步:启动发动机。
第五步:根据需求调整速度和通量/电压参考,重复步骤5和2。
第一步:选择开环模式,使用MCI_SetOpenLoopVoltageMode(&Mci[motorID])或MCI_SetOpenLoopCurrentMode(&Mci[motorID])函数(MCI_SetOpenLoopCurrent和MCI_SetOpenLoopVoltage应视为已弃用,未来将被移除)。
步骤2(仅开环电压模式):通过 OL_UpdateVoltage(&OpenLoop_ParamsMx,((Voltage_Reference * 32767) / 100))函数设置电压参考。
步骤2 bis(仅开环电流模式):通过MCI_SetCurrentReferences(和Mci[motorID], Iqd)函数设置电流参考。注意 Iqd 是一个需要参数 ID 和 Iq 作为参数的 qd_t结构。id是通量参考,而智商通常是0。
第三步:通过MCI_ExecSpeedRamp(&Mci[motorID],(int3_t)((Speed_rpm * SPEED_UNIT) / U_RPM), Duration_ms)函数设置速度斜坡。
第四步:通过MC_StartMotor**x**()启动电机。
函数中的加粗文本部分应由用户根据其需求和系统设置。
这张图展示了无传感器启动时常见的电流曲线。校准阶段将转子设定为初始位置,随后电机在开环加速阶段开始旋转,一旦BEMF正确估计,系统切换到闭环并启用电流控制。如果电流状况有问题,建议在开环模式下做一些测试,以了解硬件的表现。
开环功能旨在缩小固件的功能范围,转而关注硬件的行为。这样就能更容易地找出问题的根本原因。第一步是尽可能缩小功能范围。这样,如果系统无法正常工作,问题的位置就比较直接了。相反,如果系统正常工作,那么可以自信地扩大范围,同时知道系统中哪些部分值得信赖。
使用开环功能时,可以预期出现以下曲线:
备注:曲线的总体方向与所选开环模式无关。然而,根据运行电机的不同,开环电压模式可能显示的正弦曲线较少。这揭示了第六谐波的效果。得益于电流控制,开环电流模式(和闭环)可以减弱这种行为。
最严格的模式是开环电压,所以它自然会第一个检查。
下图展示了开环电压模式下故障系统的示例;A阶段缺失了。从这里开始,问题就在于以下几点:
注意:如果用MotorPilot绘制电流,也可能存在电流感应问题。虽然在开环电压模式下固件不使用电流值,但仍可通过MotorPilot访问。然而,如果使用示波器上的外部电流探头,这个问题可以被排除。需要注意的是,仅此问题不会影响电机转动,因为这些电流不被前导器使用,仅显示:如果电机在转动但 MotorPilot 仍未显示某一相位,或 MotorPilot 与示波器存在重大差异,可以合理推测问题出在电流感应上。
一旦开环电压模式成功,可以放心地考虑:
不过,开环电流模式下你仍可能遇到问题,这意味着电流感应是原因。以下是可能问题的非详尽列表:
开环电流模式是MCSDK在切换到闭环前用于提升电流的模式。这意味着一个功能齐全的开环设置能够成功提升。甚至可以在切换到常规项目前,通过开放循环手动设置斜坡。
上一集:运动控制协议套件↤|目录 |↦ 下一页:固件错误